Finite impulse response (FIR) filters are widely used in various signal processing devices/circuits, such as read circuits for disk drives, Ethernet transceivers, communication devices, speech processing devices, adaptive noise cancellation devices, to filter an input signal to obtain an output signal with desired characteristics.
FIG. 1 illustrates a conventional FIR filter. The FIR filter 100 includes N−1 delay components, 1021, 1022, . . . , 102N-1, N multipliers, 1041, 1042, . . . , 104N, and N−1 adders, 1061, 1062, . . . , 106N-1, where N is an integer. The N multipliers are associated with N coefficients (e.g., stage weights), C0, C1, . . . , CN-1, respectively. In operation, the FIR filter 100 receives an input signal x[k] 101, and generates an output signal y[k] 108, as follows:
                              y          ⁡                      [            k            ]                          =                              ∑                          i              =              0                                      N              -              1                                ⁢                                    C              i                        ⨯                          x              ⁡                              [                                  k                  -                  i                                ]                                                                        (        1        )            